Thiết kế RISC-V

Đối với các hệ thống RISC-V đơn giản, giảm chi phí, có một đề xuất sử dụng các bit của thanh ghi dấu phẩy động để thực hiện lệnh đơn song song, số học từ nhiều dữ liệu (SIMD). Điều này được sử dụng rộng rãi để tăng tốc đa phương tiện và xử lý tín hiệu số khác.[3] Tính đến năm 2016[cập nhật], ISA này không được xác định, nhưng có thể giống với các hướng dẫn đa phương tiện của PA-RISC: Tăng tốc đa phương tiện. Bên cạnh toán học 64 bit gốc, CPU PA-RISC MAX2 có thể thực hiện số học trên bốn mật khẩu 16 bit cùng một lúc, với một số phương thức tràn. Nó cũng có thể di chuyển các từ khóa con đến các vị trí khác nhau. MAX2 của PA-RISC đã được đơn giản hóa một cách có chủ ý. Nó thiếu hỗ trợ cho các từ khóa 8 bit hoặc 32 bit. Kích thước từ phụ 16 bit được chọn để hỗ trợ hầu hết các tác vụ xử lý tín hiệu số. Những hướng dẫn này không tốn kém để thiết kế và xây dựng. Tuy nhiên, họ đã tăng hiệu suất của CPU đối với các tác vụ xử lý tín hiệu số từ 48 lần trở lên, cho phép các codec video thời gian thực thực tế vào năm 1995.[57][58]

Bộ Vectơ

Bộ hướng dẫn xử lý vectơ được đề xuất có thể làm cho bộ SIMD đóng gói bị lỗi thời. Các nhà thiết kế hy vọng có đủ sự linh hoạt để CPU có thể thực hiện các hướng dẫn vectơ trong các thanh ghi của bộ xử lý tiêu chuẩn. Điều này sẽ cho phép thực hiện tối thiểu với hiệu suất tương tự như một ISA đa phương tiện, như trên. Tuy nhiên, một bộ đồng xử lý vectơ thực sự có thể thực thi cùng một mã với hiệu suất cao hơn.[59]

Tính đến ngày 29 tháng 6 năm 2015[cập nhật], đề xuất xử lý vectơ là một thiết kế linh hoạt, bảo thủ của bộ xử lý vectơ có độ chính xác hỗn hợp cho mục đích chung, phù hợp để thực hiện các hạt nhân tính toán. Mã sẽ chuyển dễ dàng đến các CPU có độ dài vectơ khác nhau, lý tưởng mà không cần biên dịch lại.[59]

Ngược lại, các phần mở rộng SIMD vectơ ngắn ít thuận tiện hơn. Chúng được sử dụng trong x86, ARMPA-RISC. Trong đó, thay đổi độ rộng từ buộc thay đổi tập lệnh để mở rộng các thanh ghi vectơ (trong trường hợp x86, từ các thanh ghi MMX 64 bit sang phần mở rộng SIMD truyền phát 128 bit (SSE), sang nâng cao 256 bit phần mở rộng vectơ (AVX) và AVX-512). Kết quả là một tập lệnh đang phát triển và cần chuyển mã làm việc sang các hướng dẫn mới.

Trong ISA vectơ RISC-V, thay vì sửa độ dài vectơ trong kiến trúc, một lệnh (setvl) có sẵn trong đó có kích thước được yêu cầu và đặt độ dài vectơ ở mức tối thiểu của giới hạn phần cứng và kích thước được yêu cầu. Vì vậy, đề xuất RISC-V giống như thiết kế vector dài của Cray. Nghĩa là, mỗi vectơ trong tối đa 32 vectơ có cùng độ dài.[59]

Ứng dụng chỉ định tổng chiều rộng vectơ mà nó yêu cầu và bộ xử lý xác định độ dài vectơ mà nó có thể cung cấp với các tài nguyên trên chip có sẵn. Điều này có hình thức của một hướng dẫn (vsetcfg) với bốn toán hạng ngay lập tức, chỉ định số lượng thanh ghi vector của mỗi chiều rộng có sẵn cần thiết. Tổng số phải không quá giới hạn địa chỉ là 32, nhưng có thể ít hơn nếu ứng dụng không yêu cầu tất cả. Độ dài vectơ bị giới hạn bởi bộ lưu trữ trên chip có sẵn chia cho số byte lưu trữ cần thiết cho mỗi mục nhập. (Các giới hạn phần cứng được thêm vào cũng có thể tồn tại, do đó có thể cho phép triển khai theo kiểu SIMD.)[59]

Ngoài các vòng lặp vectơ, ứng dụng có thể yêu cầu các thanh ghi vectơ không, lưu hệ điều hành công việc bảo quản chúng trên các công tắc ngữ cảnh.[59]

Độ dài vectơ không chỉ thay đổi về mặt kiến trúc mà còn được thiết kế để thay đổi theo thời gian chạy. Để đạt được tính linh hoạt này, tập lệnh có khả năng sử dụng các đường dẫn dữ liệu có chiều rộng thay đổi và các hoạt động kiểu biến bằng cách sử dụng quá tải đa hình.[59] Kế hoạch là những thứ này có thể làm giảm kích thước và độ phức tạp của ISA và trình biên dịch.[59]

Các bộ xử lý vectơ thử nghiệm gần đây với đường dẫn dữ liệu có chiều rộng thay đổi cũng cho thấy sự gia tăng lợi nhuận trong các hoạt động mỗi: giây (tốc độ), diện tích (chi phí thấp hơn) và watt (tiết kiệm năng lượng).[60]

Không giống như một đơn vị xử lý đồ họa hiện đại thông thường, không có kế hoạch cung cấp phần cứng đặc biệt để hỗ trợ sự tiên đoán chi nhánh. Thay vào đó, mục đích dựa trên trình biên dịch chi phí thấp hơn sẽ được sử dụng.[59][61]

Hệ thống gỡ lỗi bên ngoài

Có một đặc điểm kỹ thuật sơ bộ cho trình gỡ lỗi được hỗ trợ phần cứng của RISC-V. Trình gỡ lỗi sẽ sử dụng một hệ thống vận chuyển như Test Action Group (JTAG - Nhóm Thử Hành Động) hoặc USB để truy cập các thanh ghi gỡ lỗi. Giao diện gỡ lỗi phần cứng tiêu chuẩn có thể hỗ trợ giao diện trừu tượng được chuẩn hóa hoặc cấp lệnh.[62][63]

Tính đến tháng 1 năm 2017[cập nhật], hình thức chính xác của giao diện trừu tượng vẫn chưa được xác định, nhưng các đề xuất bao gồm một hệ thống được ánh xạ bộ nhớ với các địa chỉ được tiêu chuẩn hóa cho các thanh ghi của thiết bị gỡ lỗi hoặc một thanh ghi lệnh và một thanh ghi dữ liệu có thể truy cập vào hệ thống truyền thông.[62] Các thông tín viên cho rằng các hệ thống tương tự được sử dụng bởi giao diện chế độ gỡ lỗi nền của Freescale (BDM) cho một số CPU, ARM, OpenRISC và LEON của Aeroflex.[62]

Trong chế độ đút ăn lệnh, CPU sẽ xử lý một ngoại lệ gỡ lỗi để thực thi các lệnh riêng lẻ được ghi vào thanh ghi. Điều này có thể được bổ sung với một thanh ghi truyền dữ liệu và một mô-đun để truy cập trực tiếp vào bộ nhớ. Hướng dẫn cho phép trình gỡ lỗi truy cập vào máy tính chính xác như phần mềm. Nó cũng giảm thiểu các thay đổi trong CPU và thích nghi với nhiều loại CPU. Điều này được cho là đặc biệt thích hợp với RISC-V vì nó được thiết kế rõ ràng cho nhiều loại máy tính. Thanh ghi truyền dữ liệu cho phép trình gỡ lỗi ghi vòng lặp di chuyển dữ liệu vào RAM và sau đó thực hiện vòng lặp để di chuyển dữ liệu vào hoặc ra khỏi máy tính với tốc độ gần tốc độ tối đa của kênh dữ liệu của hệ thống gỡ lỗi.[62] Các thông tín viên nói rằng các hệ thống tương tự được sử dụng bởi Công Nghệ MIPS MIPS, Intel Quark, Xtensa của Tensilica và cho giao diện chế độ gỡ lỗi nền của CPU Freescale Power ISA (BDM).[62]

Tài liệu tham khảo

WikiPedia: RISC-V http://svn.clifford.at/handicraft/2019/rvlonginsn/... http://www.adapteva.com/andreas-blog/analyzing-the... http://www.electronicsweekly.com/news/business/cod... http://www.fpga-cores.com/ http://www.fpga-cores.com/instant-soc/ http://www.fpga-cores.com/instant-soc/risc-v/ http://linleygroup.com/press_detail.php?The-Linley... http://www-inst.eecs.berkeley.edu/~cs152/sp14/hand... http://www.eecs.berkeley.edu/~yunsup/papers/hwacha... http://www.eecs.berkeley.edu/~yunsup/papers/predic...